#include "GenericJsonConverter.h"

QJsonValue GenericJsonConverter::toJsonValue(const QString& value) {
    return QJsonValue(value);
}

QJsonValue GenericJsonConverter::toJsonValue(int value) {
    return QJsonValue(value);
}

QJsonValue GenericJsonConverter::toJsonValue(double value) {
    return QJsonValue(value);
}

QJsonValue GenericJsonConverter::toJsonValue(bool value) {
    return QJsonValue(value);
}

QJsonValue GenericJsonConverter::toJsonValue(long value) {
    return QJsonValue(static_cast<qint64>(value));
}

QString GenericJsonConverter::getString(const QJsonObject& json, const QString& key, const QString& defaultValue) {
    return json.contains(key) ? json.value(key).toString(defaultValue) : defaultValue;
}

int GenericJsonConverter::getInt(const QJsonObject& json, const QString& key, int defaultValue) {
    return json.contains(key) ? json.value(key).toInt(defaultValue) : defaultValue;
}

double GenericJsonConverter::getDouble(const QJsonObject& json, const QString& key, double defaultValue) {
    return json.contains(key) ? json.value(key).toDouble(defaultValue) : defaultValue;
}

bool GenericJsonConverter::getBool(const QJsonObject& json, const QString& key, bool defaultValue) {
    return json.contains(key) ? json.value(key).toBool(defaultValue) : defaultValue;
}

long GenericJsonConverter::getLong(const QJsonObject& json, const QString& key, long defaultValue) {
    return json.contains(key) ? static_cast<long>(json.value(key).toVariant().toLongLong()) : defaultValue;
}
